package l.l.w.leetcode.MergeTwoSortedLists;

/**
 * Created by llw on 2017/10/29.
 */
public class MergeTwoSortedLists {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1 == null) return l2;
        if(l2 == null) return l1;
        ListNode head= null;
        if(l1.val < l2.val){
            head = new ListNode(l1.val);
            l1 = l1.next;
        }else {
            head = new ListNode(l2.val);
            l2 = l2.next;
        }
        ListNode cur = head;
        while(l1 != null && l2 != null){
            if(l1.val < l2.val){
                cur.next = l1;
                l1 = l1.next;
            }else{
                cur.next = l2;
                l2 = l2.next;
            }
            cur = cur.next;
        }
        if(l1 == null) cur.next = l2;
        else cur.next = l1;
        return head;
    }
    public static void main(String[] args) {
        ListNode l1 = new ListNode(1);
        l1.next = new ListNode(2);
        ListNode l2 = new ListNode(1);
        l2.next = new ListNode(3);
        ListNode result = new MergeTwoSortedLists().mergeTwoLists(l1, l2);
        System.out.println(result);

    }


}
class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}
